package com.example.simpleforum.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 密码加密工具类
 */
public class PasswordUtil {
    
    /**
     * 使用MD5算法对密码进行加密
     * @param password 原始密码
     * @return 加密后的密码
     */
    public static String encrypt(String password) {
        try {
            // 创建MessageDigest实例
            MessageDigest md = MessageDigest.getInstance("MD5");
            // 将密码转换为字节数组并进行加密
            md.update(password.getBytes());
            byte[] byteData = md.digest();
            
            // 将字节数组转换为十六进制字符串
            StringBuilder sb = new StringBuilder();
            for (byte b : byteData) {
                sb.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1));
            }
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }
    }
    
    /**
     * 验证密码是否正确
     * @param inputPassword 输入的密码
     * @param storedPassword 存储的加密密码
     * @return 密码是否匹配
     */
    public static boolean verify(String inputPassword, String storedPassword) {
        String encryptedInput = encrypt(inputPassword);
        return encryptedInput != null && encryptedInput.equals(storedPassword);
    }
}